/**
 * E-mail sending frontend functions
 */
var Mail={
  
  /**
   * Generate new token and set it in formular.
   * @return bool
   */
   getToken: function(form)
   {
     var state = false;
        $.ajax({
            type: 'post',
            url: System.buildEvent('Generate-Token'),
            data:
            {
                seed: Math.random(),
            },
            dataType: 'json',
            async: false,
            success: function(data)
            {
                if(data.token )
                {
                    $(form).find('input[name=Token]').val(data.token);
                    state = true;
                }
            },
            error: function()
            {
                $(form).find('input').attr('disabled','disabled');
                System.WindowTooltip('Wystąpł błąd. Proszę spróbować później.')
            }
        });
        return state;
   },
   
   /**
    * Send email 
    */
   send: function(options)
   {
        var settings = $.extend({},{form: null, mail:null, data: null, error: null},
            options);
        
        if(settings.form && settings.data)
        {                
            if(Mail.getToken(settings.form))
            {
                settings.data = $.extend({},
                {
                    Token: $('input[name=Token]').val(),
                    mail:settings.mail
                 },settings.data);
             
                $.ajax({
                    type: "POST",
                    url: System.buildEvent('Send-Mail'),
                    async: false,
                    data: settings.data,
                    dataType: "json",
                    success: function(data)
                    {                 
                        if(typeof(settings.success)=='function')
                        {
                            settings.success(data);
                        }
                    },
                    error: function(data)
                    {
                        System.WindowTooltip('Wystąpił błąd podczas wysyłania wiadomości');
                    }
                });
            }else
            {
                System.WindowTooltip('Wystąpił błąd podczas wysyłania wiadomości');
            }
        }
   }
    
};